package br.com.almanach.seguranca;

import br.com.almanach.dominio.seguranca.Perfil;
import br.com.almanach.dominio.seguranca.Usuario;
import br.com.almanach.jsf.JSFUtil;
import br.com.almanach.jsf.Pagina;
import br.com.almanach.negocio.seguranca.UsuarioNegocio;
import br.com.almanach.padrao.Editar;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;

@ManagedBean(name="editarUsuario")
@ViewScoped
public class EditarUsuario extends Editar implements Serializable {

    @EJB
    private UsuarioNegocio usuarioNegocio;
    private Usuario objeto;

    private Perfil perfil;

    @PostConstruct
    public void construtor(){
        String id = JSFUtil.getParametro("id");
        if(id!=null){
            objeto = usuarioNegocio.buscar(new Integer(id));
        }
    }

    @Override
    public String salvar() {        
        if(this.objeto.getId()==null){
            usuarioNegocio.incluir(this.objeto);
        }else{
            usuarioNegocio.alterar(this.objeto);
        }
        return Pagina.LISTAR_USUARIO_REDIRECIONAR;
    }


    public void setUsuarioNegocio(UsuarioNegocio usuarioNegocio) {
        this.usuarioNegocio = usuarioNegocio;
    }

    public Usuario getObjeto() {
        if(objeto==null){
            objeto = new Usuario();
        }
        return objeto;
    }

    public void setObjeto(Usuario objeto) {
        this.objeto = objeto;
    }

    public Perfil getPerfil() {
        if(this.perfil==null){
            this.perfil = new Perfil();
        }
        return perfil;
    }

    public void setPerfil(Perfil perfil) {
        this.perfil = perfil;
    }

    public void incluir(ActionEvent actionEvent){
        objeto.getPerfis().add(perfil);
        perfil = null;
    }

    public String remover(Perfil perfil){
        objeto.getPerfis().remove(perfil);
        return null;
    }

    public String voltar(){
        return Pagina.LISTAR_USUARIO_ENCAMINHAR;
    }

}